package com.qingyun.form.internal.render

import com.qingyun.form.items.BaseFormItem

/**
 * 表单渲染接口
 */
interface IFormRender {
    /**
     * 渲染表单
     */
    fun render()

    /**
     * 刷新
     */
    fun onNeedRefresh()

    /**
     * 表单项添加时回调
     * @param item 已插入的表单项
     * @param position 表单项的插入位置
     */
    fun onFormItemInserted(item: BaseFormItem?, position: Int)

    /**
     * 表单项移除时回调
     * @param item 已移除的表单项
     * @param position 表单项的位置
     * @param count 移除的表单项数量
     */
    fun onFormItemRemoved(item: BaseFormItem?, position: Int, count: Int)

    /**
     * 更新指定位置的表单项
     */
    fun onFormItemUpdated(index: Int)

    /**
     * 高亮指定的表单项
     */
    fun highlight(formItem: BaseFormItem?)
}